/*
symbol  数据类型   新增的一个数据类型
特性：提供一个独一无二的值
如何使用
*/
{
let a1 = Symbol();
let a2 = Symbol();
console.log(a1===a2);//false
let a3 = Symbol.for('a3');
let a4 = Symbol.for('a3');
console.log(a3 === a4);//true
}

{
  let a1=Symbol.for('abc');
  let obj = {
    [a1]:'123',
    'abc':'345'
  }
  console.log(obj);//{abc: "345", Symbol(abc): "123"}
// 对象中用sybmol作为独一无二的属性的时候，用for遍历属性的时候是获取不到这个属性的
for(let [key,value] of Object.entries(obj)){
  console.log([key,value]);//["abc", "345"]
}
//只能获取Symbol对象上面的属性
Object.getOwnPropertySymbols(obj).forEach(function(item){
  console.log(obj[item]);//123
})
//不管属性是普通对象还是Symbol对象的属性 ，都可以遍历出来
Reflect.ownKeys(obj).forEach(function(item){
  console.log(obj[item]);//345 123
})
}
